# concat 函数示例

CONCAT() 函数不应与 CONCATENATE 脚本关键字混淆。

在最简形式中，Concat() 用于将字符串与值/词/选择项组合为一个字符串。但是，它可以利用多种方式帮助你解决各种问题。以下表列出所有示例：

![Example string table data](https://help.qlik.com/zh-CN/qlikview/September2026/Subsystems/Client/Content/Resources/Images/ui_gen_ConcatTable.png)

示例字符串表格数据

| Table | MyColumn | Date | Value |
| --- | --- | --- | --- |
| Data | JKL | 01/01/2012 | 11 |
| Data1 | WVX | 01/02/2012 | 13 |
| Data | GHI | 01/03/2012 | 13 |
| Data | ABC | 01/04/2012 | 15 |
| Data1 | STU | 01/05/2012 | 18 |
| Data1 | PQR | 01/06/2012 | 10 |
| Data1 | MNO | 01/07/2012 | 25 |
| Data | DEF | 01/08/2012 | 11 |

## 简单字符串串联

如前所述，concat函数允许你将列表所有值串成一串。这些值可以是硬代码或选择项/数据驱动值。

`=CONCAT(MyColumn,',')`

`=CONCAT(DISTINCT MyColumn,',')`

这一简单concat 语句可以将 MyColumn 栏中的所有可能值串成一串。你不妨增加 DISTINCT 关键词。可以确保字符串中的每个值只显示一次：

ABC,DEF,GHI,JKL,MNO,PQR,STU,VWX

使用简单concat时，你可以选择函数的排序权重，根据你的选择栏排序字符串的值。在以下示例中，增加日期栏以排序数值。

`=CONCAT(MyColumn, ',', Date)`

结果：JKL,VWX,GHI,ABC,STU,PQR,MNO,DEF

## Expression/Set 语句内的Concat()

示例： 将多个动态值传递至设置分析表达式中

当你想将数值的动态选择传递至 SET 语句时，是有机会的。字符串需要添加单引号，即 CONCAT() 函数返回，如'JKL','VWX'。但你不能保留他们本身的单引号，因为他们会被解释为当评估Concat时而不是评估表达式时。使用 Chr()函数来代替：

`=CONCAT(Chr(39)&MyColumn&Chr(39),',')`

之后可以传递concat语句到表达式中：

`=Sum({<MyColumn={$(=CONCAT(Chr(39)&MyColumn&Chr(39),','))}>} Value)`

大多数情况下，出现数据岛的地方就可以使用这项技术。能够让你传递数值到表达式中而不影响数据模型的任何部分，因为数据岛表格未加入进去。

## 脚本中的Concat()

Concat可以用于脚本中，将多行转换成单列的值，正如任何其它的聚合一样。

务必要较早使用数据，脚本结果 CONCAT如下所示：

```
ConcatExample:
```

```
Load Table,
```

```
Concat(MyColumn,',') as CombinedData
```

```
Resident Temp
```

Group By Table;

以下为脚本函数的结果：

表格形式示例输出

| Table | CombinedData |
| --- | --- |
| Data | ABC,DEF,GHI,JKL |
| Data1 | MNO,PQR,STU,WVX |

## 使用 Rank() 影响Concat()

当你开始使用与concat()相联的其他函数时，你可以开始完成更好的结果。在本例中，已使用Rank()抓取前三项（基于数值）并将其串联起来。

=CONCAT(IF(aggr(Rank(sum(Value)),MyColumn)&lt;=3,MyColumn),',')

结果：ABC,MNO,STU